package com.ljm.sys.auth.api;

import com.ljm.common.page.PageDto;
import com.ljm.sys.auth.dto.SysAuthResourceDto;
import com.ljm.sys.org.dto.SysOrgUserDto;

import java.util.List;

/**
 * <p>
    * 系统菜单 接口
    * </p>
 *
 * @author ming
 * @since 2019-03-28
 */
public interface SysAuthResourceApi {
    /**
     * 保存资源
     * @param dto 资源
     * @param curUser 当前用户
     * @ 异常
     */
    void saveData(SysAuthResourceDto dto, SysOrgUserDto curUser);

    /**
     * 批量删除资源
     * @param ids 主键集合
     * @ 异常
     */
    void del(List<Long> ids);

    /**
     * 获取数据
     * @param id 主键
     * @return 资源数据
     * @ 异常
     */
    SysAuthResourceDto getDataById(Long id);

    /**
     * 分页获取
     * @param title 菜单名称
     * @param path 菜单路径
     * @param groupName 组别名称
     * @param pageNo 页码
     * @param pageSize 页大小
     * @return 资源分页数据
     * @ 异常
     */
    PageDto<SysAuthResourceDto> getDataByPage(String title, String path, String groupName, String permissionCode,
                                              Integer pageNo, Integer pageSize);

    /**
     * 获取所有菜单
     * @return 菜单数据
     * @ 异常
     */
    List<SysAuthResourceDto> getAllResource();

    /**
     * 获取用户菜单
     * @param curUser 当前用户
     * @return 用户菜单
     * @ 异常
     */
    List<SysAuthResourceDto> getCurUserResource(SysOrgUserDto curUser);

    /**
     * 获取子资源
     * @param parentId 父id
     * @return 子资源数据
     */
    List<SysAuthResourceDto> getChlildRes(Long parentId);

}
